#pragma once

#ifndef FEATURE_POINT_H
#define FEATURE_POINT_H

#include "common_include.h"
#include"landmark.h"
#include"frame.h"

namespace test_visual_odom{

struct Frame;
struct LandMark;

struct FeaturePoint{
    public:
    EIGEN_MAKE_ALIGNED_OPERATOR_NEW;
    typedef shared_ptr<FeaturePoint> Ptr;

    cv::KeyPoint keyPoint2D_;
    weak_ptr<LandMark> p_landmark_;
    weak_ptr<Frame> frame_;
    bool is_outlier_ = true;

    FeaturePoint(){}
    FeaturePoint(const cv::KeyPoint &kp, shared_ptr<Frame> frame): keyPoint2D_(kp), frame_(frame){
        // p_pos_world_ = nullptr;
    }
};


}
#endif  // MYSLAM_FRAME_H
